package com.xiaocg.create;

import java.lang.reflect.InvocationHandler;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.ThreadFactory;
import java.util.stream.IntStream;

public class CreateTypeTest {
    public static void main(String[] args) {

        //builder 模式 单例模式
        StringBuilder sb = new StringBuilder();

        //抽象工厂
        CharSequence cs = sb;

        cs.toString();
        cs.toString();// 原型模式

        List<Integer> list = Arrays.asList(1,2,3);
        int sum = list.stream().mapToInt(Integer::intValue).sum();

        StringBuffer buffer = new StringBuffer();
        //有状态、无状态
        //可变、不可变 immutable/mutable
        StringBuilder builder = new StringBuilder();

        String s; //final

        // Stream 每个方法返回的是不同的对象，并且对象是不变的
        // immutable

        // ThreadFactory
        // 多组合，少继承

        // RequestFacade 门面模式
        // InvocationHandler Proxy

    }
}
